/**
 * chika和蜜柑
 *
 * 题目描述
 * chika很喜欢吃蜜柑。每个蜜柑有一定的酸度和甜度，chika喜欢吃甜的，但不喜欢吃酸的。
 * 一共有n个蜜柑，chika吃k个蜜柑，将获得所吃的甜度之和与酸度之和。chika想获得尽可
 * 能大的甜度总和。如果有多种方案，她希望总酸度尽可能小。
 * 她想知道，最终的总酸度和总甜度是多少？
 *
 * 输入描述:
 * 第一行有两个正整数n和k，分别代表蜜柑总数和chika吃的蜜柑数量。(1≤k≤n≤200000)
 * 第二行有n个正整数ai，分别代表每个蜜柑的酸度。（1≤ai≤1e9）
 * 第二行有n个正整数bi，分别代表每个蜜柑的甜度。（1≤bi≤1e9）
 *
 * 输出描述:
 * 两个正整数，用空格隔开。分别表示总酸度和总甜度。
 */

/**
 * 这一题需要我们选取 k 个最大的甜度大蜜桔, 这个我
 * 们直接对他排序就可以了 但是要是有相等甜度的蜜桔出
 * 现, 就需要我们选择酸度较小的蜜桔了, 这个时候我们
 * 需要在上面的基础上再次对酸度进行较小的优先的排序
 * 因为甜度和酸度是一个蜜桔的, 所以这两个需要进行绑定
 * 在一起, 那我们干脆直接定义一个蜜桔类一起进行甜度和
 * 酸度的排序就可以了
 * 时间复杂度 : O(n)
 * 空间复杂度 : O(n)
 */

import java.util.Arrays;
import java.util.Scanner;

/**
 * 自定义蜜桔 类
 */
class Oranger {

    // 酸度
    int a;

    // 甜度
    int b;

    public Oranger() {

    }

    public Oranger(int a, int b) {
        this.a = a;
        this.b = b;
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int n = in.nextInt(), k = in.nextInt();

        // 蜜桔类
        Oranger[] nums = new Oranger[n];

        // 酸度
        for (int i = 0; i < n; i++) {
            nums[i] = new Oranger();
            nums[i].a = in.nextInt();
        }

        // 甜度
        for (int i = 0; i < n; i++) {
            nums[i].b = in.nextInt();
        }

        // 进行排序
        Arrays.sort(nums, (x, y) -> {

            // 甜度相等比较酸度, 酸度需要小的优先考虑
            if (x.b == y.b) {
                // 酸度从小到大
                return x.a - y.a;
            }

            // 甜度从大到小
            return y.b - x.b;
        });

        // 计算结果
        // x : 酸度
        // y : 甜度
        long x = 0, y = 0;

        for (int i = 0; i < k; i++) {
            x += nums[i].a;
            y += nums[i].b;
        }

        System.out.println(x + " " + y);
    }
}